home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 5
/
Gekikoh Dennoh Club Vol. 5 (Japan).7z
/
Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin
/
tools
/
condrv
/
condrv_i.doc
< prev
next >
Wrap
Text File
|
1998-06-25
|
5KB
|
177 lines
* condrv(em).sys version 1.09c+11 *
* Application Programming Interface *
* âVâXâeâÇâRü[âï------------------------------ *
d0.w = $0000
ï@ö\ : âoâbâtâ@âèâôâOɺîΣ
ôⁿù═ : d1.w == 0 : OFF
!= 0 : ON
Åoù═ : d0.l = 0
ö⌡ìl : Å]ùêé⌐éτéáéΘï@ö\é┼é╖üBâVâXâeâÇâXâeü[â^âXé╠ì─ò\Īé═èeÄ⌐é┼ìsé┴é─ë║é│éóüB
d0.w = $0010
ï@ö\ : â}âEâXɺîΣ(û│î°)
ôⁿù═ : é╚é╡
Åoù═ : d0.l = 0
ö⌡ìl : â}âEâXâïü[â`âôé╠ìφÅ£é╔ö║é┴é─û│î°ë╗é╡é─éáéΦé▄é╖üB
d0.w = $0020
ï@ö\ : IOCS _KEY_INIT é╠âtâbâN
ôⁿù═ : a1.l = Åêù¥âAâhâîâX
Åoù═ : d0.l = î│é╠É▌ÆΦâAâhâîâX
ö⌡ìl : IOCS _KEY_INIT é¬î─é╤Åoé│éΩé╜Ä₧é╔Ä└ìsé╖éΘâTâuâïü[â`âôé≡ôoÿ^é╡é▄é╖üB
IOCS é╠âxâNâ^é≡ò╧éªé╕é╔ CONDRV.SYS é┼âtâbâNé╡é╜âïü[â`âôôαòöé⌐éτî─é╤
Åoé╖é╠é┼üAÅ]ùêé╠(IOCTRL é≡Ägéφé╚éó)ò√û@é╔éµéΘɺîΣé≡æjèQé╡é▄é╣é±üB
d0.w = $0021
ï@ö\ : IOCS _KEY_INIT é╠âtâbâNë≡Å£
ôⁿù═ : a1.l = î╗ì▌é╠Åêù¥âAâhâîâX
a2.l = î│é╠Åêù¥âAâhâîâX
Åoù═ : d0.l = 0 : É│ÅφÅIù╣
-2 : âAâhâîâXé¬ê┘Åφ
ö⌡ìl : d0.w = $0020 é┼ôoÿ^é╡é╜âTâuâïü[â`âôé≡ìφÅ£é╡é▄é╖üB
CONDRV.SYS ôαòöé┼ïLë»é╡é─éóéΘâAâhâîâXé╞ a1.l é¬ê┘é╚éΘÅΩìçé═âGâëü[é╞é╚éΦé▄é╖üB
d0.w = $0022
ï@ö\ : IOCS _KEY_INIT é╠Åêù¥âAâhâîâXÄ√ô╛
ôⁿù═ : é╚é╡
Åoù═ : d0.l = âAâhâîâX
ö⌡ìl : d0.w = $0020 é┼ôoÿ^é╡é╜ì┼îπé╠âTâuâïü[â`âôé╠âAâhâîâXé≡ò╘é╡é▄é╖üB
d0.w = $0023
ï@ö\ : âoâbâtâ@âèâôâOùÜù≡ɺîΣ
ôⁿù═ : d1.w == 0 : POP
!= 0 : PUSH
Åoù═ : d0.l = 0 : É│ÅφÅIù╣
-2 : âXâ^âbâNé¬ï≤é╠Ä₧é╔ POP é╡éµéñé╞é╡é╜é⌐üA
âXâ^âbâNé¬û₧öté╠Ä₧é╔ PUSH é╡éµéñé╞é╡é╜ÅΩìçüB
ö⌡ìl : î╗ì▌é╠âoâbâtâ@âèâôâOâéü[âhé≡âXâ^âbâNé╔æ╥ö≡üAé▄é╜é═
ì┼îπé╔æ╥ö≡é╡é╜âéü[âhé≡âXâ^âbâNé⌐éτĵéΦÅoé╡é─É▌ÆΦé╡é▄é╖üB
âVâXâeâÇâXâeü[â^âXé╠ì─ò\Īé═èeÄ⌐é┼ìsé┴é─ë║é│éóüB
âXâ^âbâNé═32ë±ò¬é╠æ╥ö≡é¬ÅoùêéΘùeù╩é¬éáéΦé▄é╖üB
XCONT PUSH/POP ùpé╔É▌é»é╜ï@ö\é╚é╠é┼üAæ╝é╠âAâvâèâPü[âVâçâô
é⌐éτé═Ägùpé╡é╚éóé┼ë║é│éóüB
d0.w = $0024
ï@ö\ : âoâbâtâ@âèâôâOɺîΣII
ôⁿù═ : d1.w == -1 : ON (stop_level--)
== 0 : î╗ì▌é╠âîâxâïé≡Ä√ô╛é╖éΘ
== +1 : OFF(stop_level++)
Åoù═ : d0.l = ò╧ìXîπé╠âîâxâïé≡ò╘é╖(0ü`65535)
== -1 : âîâxâïé¬è∙é╔Åπî└/ë║î└é╔ÆBé╡é─éóéΘ
ö⌡ìl : âåü[âUé╠ C-bs é╔éµéΘâoâbâtâ@âèâôâOé╠ÆΓÄ~é╞é═û│è╓îWé╔ô«ì∞é╖éΘ
æµô±é╠âoâbâtâ@âèâôâOù}ɺï@ö\é┼é╖. ÆΓÄ~âîâxâïé¬ 1 ê╚Åπé╠ÅΩìç
âoâbâtâ@âèâôâOé¬ìséφéΩé╚é¡é╚éΦé▄é╖. âåü[âUé╠âLü[æÇì∞é┼ɺîΣ
é╖éΘé▒é╞é═ÉΓæ╬é╔Åoùêé▄é╣é±.
âAâvâèâPü[âVâçâôé¬ d0.w = $0000 é╠ï@ö\é┼ÆΓÄ~é│é╣éΘé╞üAâåü[âU
é¬ C-bs é≡ôⁿù═é╖éΘé╞ì─èJé╡é─é╡é▄éñòsôsìçé¬éáéΘé╠é┼üAìíîπé═
é▒é┐éτé≡Ägùpé╖éΘéµéñé╔é╡é─ë║é│éó.
d0.w = $ffff
ï@ö\ : âoü[âWâçâôîƒì╕
ôⁿù═ : é╚é╡
Åoù═ : d0.l == -1 : ÅâÉ│òi
== 'e??#' : ?? = ö┼Éö(ùß:'05'), # = ÅCÉ│ö┼ö╘ìå(ùß:' ','a')
d0.w é¬ûóÆΦï`é╠ÉöÆlé╛é┴é╜ÅΩìçé═ d0.l = -1 é≡ò╘é╡é▄é╖üB
* î÷èJâÅü[âN --------------------------------- *
IOCS _KEY_INIT é╠âxâNâ^-4é╠âAâhâîâXé╠âfü[â^é¬'hmk*'é┼éáéΩé╬ CONDRV.SYS
é═æ╢ì▌é╡üAô»-28é╠âAâhâîâXé⌐éτ28âoâCâgé¬î÷èJâÅü[âNüB
é╜é╛é╡üAî÷èJé│éΩé─éóéΘé╠é═êΩòöé╠ôαùeé╛é»é┼éáéΘüB
<ü¢>: î÷èJâÅü[âN
<ü~>:ö±î÷èJâÅü[âN
offset size
0(-28) 1.b <ü~>ïNô«Ä₧é╠âIâvâVâçâô(bit7=1:-jüAbit0=1:-f)
(bit1=1:BG æ╬ë₧/sleep âéü[âhüAxcont é┼Ägùpé╖éΘé╠é┼ò╧ìXï╓Ä~)
1(-27) 1.b <ü~>ûóÄgùp
2(-26) 1.w <ü~>ûóÄgùp(âIâèâWâiâïé┼é═âyü[âXâgé╠âJâEâôâ^)
4(-24) 1.w <ü~>üV (üV âyü[âXâgé╠âJâEâôâ^Åëè·Æl)
6(-22) 1.l <ü¢>âVâXâeâÇâRü[âïé╠âAâhâîâX
10(-18) 1.b <ü¢>ï≤ò╢ÄÜù±(âIâèâWâiâïé┼é═ö±î÷èJüAûóÄgùp)
11(-17) 1.b <ü¢>âLü[æÇì∞ù}ɺâtâëâO(âåü[âUâvâìâOâëâÇé┼ò╧ìXë┬ö\)
12(-16) 1.l <ü¢>âoâbâtâ@Åæé½ì₧é▌âïü[â`âôé╠âAâhâîâX
16(-12) 1.l <ü¢>âyü[âXâgâoâbâtâ@é╠âTâCâY
20( -8) 1.l <ü¢>âyü[âXâgâoâbâtâ@é╠âAâhâîâX
24( -4) 1.l <ü¢>Ä»ò╩Äq'hmk*'
28( 0) --- IOCS _KEY_INIT é╠Åêù¥âïü[â`âô
üuï≤ò╢ÄÜù±üvé═Åφé╔ 0(NUL)é┼üAâyü[âXâgâoâbâtâ@Åæé½ì₧é▌Ä₧é╔êΩÄ₧ôIé╔
âyü[âXâgèJÄnâAâhâîâXé╞é╡é─É▌ÆΦé╡é─é¿é¡ê╫é╔ùpê╙é│éΩé─éóéΘ.
é▄é╜üAâyü[âXâgâoâbâtâ@é╠âAâhâîâX-8é⌐éτé╠4âoâCâgéαî÷èJé│éΩé─éóéΘüB
offset size
0(-8) 1.l <ü¢>âyü[âXâgèJÄnâAâhâîâX(âåü[âUâvâìâOâëâÇé┼ò╧ìXë┬ö\)
4(-4) 1.l <ü~>âoâbâNâìâOâoâbâtâ@é╠âAâhâîâX
8( 0) ?.b âyü[âXâgâoâbâtâ@(âåü[âUâvâìâOâëâÇé┼Åæé½ì₧é▌ë┬ö\)
é╚é¿üAâoâbâNâìâOâoâbâtâ@é╠âAâhâîâXé⌐éτîvÄZé╡é╜Ælé┼âoâbâtâ@é╠Åëè·ë╗é≡ìsé┴é─é═
é╚éτé╚éóüBôαòöâÅü[âNé╠Åëè·ë╗éαòKùvé┼üAû│ù¥é╔Åëè·ë╗é╖éΘé╞ì┼ê½é╠ÅΩìçû\æûé╖éΘüB
* Condrv System Call Sample $0020 ------------ *
....
lea (new_iocs_key_init,pc),a1
moveq #$20,d0
jsr (a0) System Call
lea (orig_iocs_key_init,pc),a1
move.l d0,(a1)
....
CHK_0 .macro
.local skip
bne skip
addq.l #4,sp
skip:
.endm
new_iocs_key_init:
.ifdef TYPE1 : ÉVé╡éóÅêù¥é≡ìsé┴é─é⌐éτî│é╠Åêù¥é≡ìséñÅΩìç
move.l (orig_iocs_key_init,pc),-(sp)
CHK_0
bra new_iocs_key_init_main
.else TYPE2 : î│é╠Åêù¥é≡ìsé┴é─é⌐éτÉVé╡éóÅêù¥é≡ìséñÅΩìç
pea (new_iocs_key_init_main,pc)
move.l (orig_iocs_key_init,pc),-(sp)
CHK_0
rts
.endif
new_iocs_key_init_main:
....
rts
orig_iocs_key_init:
.dc.l 0
* CONDRV.SYS Ä⌐æ╠é═ TYPE1 é┼é╖üB
* CHK_0 â}âNâìé═ê└æSé╠ê╫é╔êΩë₧ïLÅqé╡é─éáéΦé▄é╖é¬üAò╩é╔ôⁿéΩé╚é¡é─éαéóéóé┼é╖üB
* êΩë±û┌é╠âtâbâNé╠ò╘Ælé═ IOCS _KEY_INIT é╠î│é╠Åêù¥âAâhâîâXé╗é╠éαé╠é╞é╚éΦé▄é╖üB
* Condrv System Call Sample $0021/$0022 ------ *
....
moveq #$22,d0
jsr (a0) System Call
lea (new_iocs_key_init,pc),a1
cmpa.l d0,a1
bne restor_error
* lea (new_iocs_key_init,pc),a1
movea.l (orig_iocs_key_init,pc),a2
moveq #$21,d0
jsr (a0) System Call
* bmi restor_error
....
* -------------------------------------------- *
[EOF]